Rendering structured Web content, such as HTML and CSS content using a Web browser, typically involves processing a structured document including markup to ascertain the layout of the content so that it can be presented by the Web browser. Such processing can include content position, size, and shape calculations to ascertain, from the markup, how the associated content is to be presented on a screen or display. For usability and user perception, it is desirable that layout and presentation algorithms work quickly and correctly according to applicable standards.
Throughout the industry, layout processing is widely performed in a recursive fashion. For example, such processing can include initiating processing operations at a root node of HTML markup and processing downward through the markup to the leaf nodes in a recursive fashion. This processing is typically done on the entire HTML document before it is presented. Further, modern multi-core architectures can permit processing to be performed in parallel. Yet, because of the recursive nature of layout processing, advantages to be achieved from parallel processing cannot be exploited.
The recursive nature of layout processing can also lead to repetition in the processing which, in turn, can degrade performance and the user experience.